<?php

class Operaciones extends BaseOperaciones {

    public function getTipoOperacion() {
        $tipo = $this->getTipoOperaciones()->getTipOpNombre();
        return $tipo;
    }

    public function getUsuarioOperacion() {
        $usuario = $this->getsfGuardUser()->getUsername();
        return $usuario;
    }

    public function getOperacionCaja() {
        $opIngreso = sfConfig::get('app_caja_operacion_ingreso');
        
        $c = new Criteria();
        $c->add(OperacionesPeer::OP_ID, $this->getOpId(), Criteria::LESS_EQUAL);
        $caja = OperacionesPeer::doSelect($c);

        if (!empty($caja)) {
            $saldoTotal = 0;

            foreach ($caja as $c) {
                $montoOp = $c->getOpMonto();
                $tipoOp = $c->getOpTipo();
                if ($tipoOp == $opIngreso) {
                    $saldoTotal+=$montoOp;
                } else {
                    $saldoTotal-=$montoOp;
                }
            }
            
            return "$ " . $saldoTotal;
        }
        return null;
    }

    public function agregarOperacion($monto, $motivo, $operacion, $usuario) {
        $this->setOpMonto($monto);
        $this->setOpMotivo($motivo);
        $this->setOpTipo($operacion);
        $this->setOpUsuario($usuario);
        $this->save();
    }

}
